var sessionArray = new Array();//会话队列
var io;//websocket服务器


module.exports.setIO = setIO = function(io){
    connectToRemort();
    var sessionId = 2;
    io.on('connection', function(session){
      // sessionArray.push(session);
      sessionArray[sessionId] = session;
      var id = sessionId++;
      console.log("new session connect to socket.io server=>" + session.id);
      session.on('msg', function(data){
        console.log('msg =>' + data);
        var task = {sessionId:id,msg:data};
        sendMsg(task);
      });
    });
}

//socket 客户端
var net = require('net');
var client = new net.Socket();
//连接服务器
connectToRemort = function() {
   client.connect(9527, "139.224.54.233");
   var bufferData = '';
   //向socket服务器注册
   var registerData = '{"from": "maxpup","to":"server","msgId": 1,"msgType":1,"cmd": 64}\r\n'
   client.write(registerData, 'utf-8', function(){
      console.log('向socket服务器注册');
   });

   client.on('error', function (exception) {
       console.log('socket error:' + exception);
   //    client.end();
   });
   client.on('data',function(data){
     console.log('msgback =>' + data);
     var data_json = JSON.parse(data);
     var msgId = data_json.msgId;
     if(msgId == 1){
        //向服务器注册自身
        console.log('注册成功');
     }else if(msgId == 2){
        //向服务器注销自身

     }else{
        //page向服务器发送的信息
        session = sessionArray[msgId];
        session.emit('msgback',data_json);
     }
   });
}
/**
 向socket服务器发送消息
 参数：task{sessionId：发起的sessionId，msg：发送的消息}
*/
sendMsg = function(task){
  var msg_json = JSON.parse(task.msg);
  msg_json.msgId = task.sessionId;
  var msg = JSON.stringify(msg_json) + '\r\n';
  console.log('ready msg=>' + msg);
  client.write(msg, 'utf-8', function(){
    console.log("数据传入服务器成功");
  });
  // var msg = '{"from": "maxpup", "to": "MockHardware_0","msgId": 0,"msgType": 1,"cmd": 32,"params": [{"side": 0}]}\r\n';
  // client.write(msg, 'utf-8', function(){
  //   console.log("数据传入服务器成功");


  
  // });
}
